#include <iostream>
#include <stdio.h>
#include <vector>
#include <string.h>
using namespace std;
vector<int> s[750007];
int p[750007];
int res[750007];
void DFS(int r) {
	int t=p[r];
	++res[t];
	int len=s[t].size();
	for (int i=0; i<len; ++i) {
		if (s[t][i]==r) continue;
		++res[s[t][i]]; 
	}
	len=s[r].size();
	for (int i=0, t; i<len; ++i) {
		t=s[r][i];
		++res[t];
		int len2=s[t].size();
		for (int j=0, l; j<len2; ++j) {
			l=s[t][j];
			++res[l];
		}
	}
}
int main() {
	int N,Q;
	scanf("%d%d", &N, &Q);
	int st, en, ask;
	for (int i=0; i<N-1; ++i) {
		scanf("%d%d", &st, &en);
		s[st].push_back(en);
		p[en]=st;
	}
	for (int i=0; i<Q; ++i) {
		scanf("%d", &ask);
		++res[ask];
		DFS(ask);
		printf("%d\n", res[ask]);
	}
	return 0;
}
